﻿<!DOCTYPE html>
<html>
<head>
   <title>VI-MotionCueing Safety features</title>
   <meta name="generator" content="Help & Manual">
   <meta name="keywords" content="">
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <link type="text/css" href="default.css" rel="stylesheet">
   <link type="text/css" href="custom.css" rel="stylesheet">
   <script type="text/javascript" src="nsh.js"></script>
   
<!-- non-scrolling headers for CHM and browser-based help, local styles-->
<style TYPE="text/css" media="screen"> 
   <!-- 
   body {    
      margin:0; 
      padding:0; 
      overflow: auto; 
      background: #edede9; 
   } 
   #idheader { 
      width:100%; 
      height:auto; 
      padding: 0; 
      margin: 0;     
} 
    #idheaderbg  {
    background: #E40A00; 
}
#idheadernowrap  {
    white-space:nowrap; 
}
    ul {list-style-type: lower-roman}
   -->
   </style>
   
<style TYPE="text/css" MEDIA="print">
<!--
/* Hide navigation links and add space between header
     and text in the printed version. Not valid for eBooks. */
#idnav { display:none;	 }
.topichead { padding: 5px 5px 20px 5px; }
-->
</style>   
   <script type="text/javascript" src="jquery.js"></script>
   <script type="text/javascript" src="helpman_settings.js"></script>
   <script type="text/javascript" src="helpman_topicinit.js"></script>

   <script type="text/javascript">
     HMSyncTOC("index.html", "motioncueing_vi-motioncueing-safety-feature.htm");
   </script>
   <script type="text/javascript" src="highlight.js"></script>
   <script type="text/javascript">
     $(document).ready(function(){highlight();});
   </script>
</head>
<body>

<!--ZOOMSTOP-->

<div id="idheader" >
<div id="idheaderbg">
<table width="100%" border="0" cellspacing="0" cellpadding="0" 
       style="margin: 0px; color: #D7D7D7;">

  <tr valign="middle">
    <td align="left" valign="middle" class="topichead">
    <!--<div id="idheadernowrap">-->
    <p class="crumbs" id="idnav"><b>Navigation:</b>&nbsp;
   
   VI-MotionCueing&nbsp;&gt;</p>
      <h1 class="p_Heading1" style="page-break-after: avoid;"><span class="f_Heading1">VI-DriveSim Safety features</span></h1>

    <!--</div>-->
    </td>
    <td align="right" width="180" valign="middle" class="topichead" id="idnav">
    <div id="idheadernowrap">
    <a href="javascript: print();"
    		onmouseover="document.images.prntr.src='print_a.png'" 
        onmouseout="document.images.prntr.src='print_n.png'"
        ><img name="prntr" border="0" alt="Print this Topic" title="Print this Topic" src="print_n.png"
        ></a>&nbsp;&nbsp;
     <a href="motioncueing_outputs-of-vi-motioncueing.htm"
        onmouseover="document.images.prev.src='back_a.png'" 
        onmouseout="document.images.prev.src='back_n.png'"
        ><img name=prev src="back_n.png" border=0 alt="Previous page"
        ></a><a href="drvsim_i_simwb_inst.htm"
        onmouseover="document.images.main.src='top_a.png'" 
        onmouseout="document.images.main.src='top_n.png'"><img name=main src="top_n.png" border=0 alt="Return to chapter overview"
        ></a><a href="drvsim_motioncueing_tire_scrub_effect_cueing.htm"
        onmouseover="document.images.next.src='next_a.png'" 
        onmouseout="document.images.next.src='next_n.png'"><img name=next src="next_n.png" border=0 alt="Next page"
        ></a>
    </div>
    </td>
  </tr>
</table>
</div>

<!-- The following code displays Expand All/Collapse All links  below the header in topics containing toggles -->
  

</div>  



<div id="idcontent"><div id="innerdiv"> 
<!--ZOOMRESTART-->
<p class="p_Normal">VI-DriveSim is delivered with a set of safety check at the input and at the output of the procedure, stopping the entire process in case of risk for the driver or the platform. They are applied both in the online and offline version, acting as described in the following points.</p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal"><span style="font-weight: bold;">Safety layers on VI-DriveSim</span></p>
<p class="p_Normal">VI-MotionCueing &nbsp;is equipped with three levels of safety:</p>
<p class="p_Normal">1. &nbsp; &nbsp; &nbsp; &nbsp;A safe stop is triggered if inputs to VI-DriveSim are not consistent with the vehicle dynamics;</p>
<p class="p_Normal">2. &nbsp; &nbsp; &nbsp; &nbsp;The undergoing Model Predictive Control (MPC) controller is taking care of maintaining the platform within the user-defined linearized operational space;</p>
<p class="p_Normal">3. &nbsp; &nbsp; &nbsp; &nbsp;A safe stop is triggered if outputs of VI-DriveSim are not fulfilling the user defined operational space. </p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal"><span style="font-weight: bold;">VI-DriveSim input check</span></p>
<p class="p_Normal">Very high input accelerations along the 6 DOF (above 20g or 10rad/s) trigger immediately the safe stop to prevent consequences on driver safety, with a safe ramp down. This solution handles the extreme cases in which a numerical instability of one, or some of the parts composing the vehicle model, are making the simulation unreliable.</p>
<p class="p_Normal">Uncommon high accelerations (above 5g or 3rad/s) are accepted for three sampling step to be robust to numerical artefacts and to avoid undesired emergency stop.</p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal"><span style="font-weight: bold;">MPC based constraints management</span></p>
<p class="p_Normal">MPC, which is the core of VI-DriveSim, is capable of dealing with linear constraints, acting separately on the four subsystems: </p>
<p class="p_Normal">• &nbsp; &nbsp; &nbsp; &nbsp;longitudinal/pitch;</p>
<p class="p_Normal">• &nbsp; &nbsp; &nbsp; &nbsp;lateral/roll;</p>
<p class="p_Normal">• &nbsp; &nbsp; &nbsp; &nbsp;vertical;</p>
<p class="p_Normal">• &nbsp; &nbsp; &nbsp; &nbsp;yaw.</p>
<p class="p_Normal">The constraints are defined in the VI-DriveSim configuration file (*.vicue), and they can be modified by the user. Due to the nonlinear coupling between DOFs, reaching the limits cannot be prevented in any possible case by the only MPC.</p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal"><span style="font-weight: bold;">VI-DriveSim output check</span></p>
<p class="p_Normal">If the output channels exceed the user defined limits, the safe stop is activated and a safe ramp down is applied. The user is allowed to reduce the limits in the configuration file to have a more conservative setting and to prevent reaching the hardware limit. For safety reason the maximum value of the limits is set equal to the DiM specifications.</p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal"><span style="font-weight: bold;">Safe Ramp down</span></p>
<p class="p_Normal">When the safe stop is activated a safe ramping down is applied. The velocity is reduced to zero in the shortest time possible and using the maximum allowed acceleration; after that, a smooth motion is applied until the neutral position. The safe ramp down is also used when a pause request is performed by the driver, or through the GUI, if the platform position is close to the limits.</p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal"><span style="font-weight: bold;">Numeric values for limits</span></p>
<p style="text-align: justify; text-indent: 0px; padding: 0px 0px 0px 13px; margin: 0px 0px 0px 48px;"><span style="font-size:10pt; font-family: 'Arial Unicode MS','Lucida Sans Unicode','Arial';color:#000000;display:inline-block;width:13px;margin-left:-13px">&#8226;</span><span class="f_NormalIndent">When input is over 200 m/s^2 or 10 rad/s the simulation is </span><span class="f_NormalIndent" style="font-weight: bold;">stopped</span><span class="f_NormalIndent">;</span></p><p style="text-align: justify; text-indent: 0px; padding: 0px 0px 0px 13px; margin: 0px 0px 0px 48px;"><span style="font-size:10pt; font-family: 'Arial Unicode MS','Lucida Sans Unicode','Arial';color:#000000;display:inline-block;width:13px;margin-left:-13px">&#8226;</span><span class="f_NormalIndent">When input is over 50 m/s^2 or 3 rad/s for more than 30 ms the simulation is </span><span class="f_NormalIndent" style="font-weight: bold;">stopped</span><span class="f_NormalIndent">;</span></p><p style="text-align: justify; text-indent: 0px; padding: 0px 0px 0px 13px; margin: 0px 0px 0px 48px;"><span style="font-size:10pt; font-family: 'Arial Unicode MS','Lucida Sans Unicode','Arial';color:#000000;display:inline-block;width:13px;margin-left:-13px">&#8226;</span><span class="f_NormalIndent">When the output exceeds the platform limits set in the .vicue file the simulation is </span><span class="f_NormalIndent" style="font-weight: bold;">stopped</span><span class="f_NormalIndent">;</span></p><p style="text-align: justify; text-indent: 0px; padding: 0px 0px 0px 13px; margin: 0px 0px 0px 48px;"><span style="font-size:10pt; font-family: 'Arial Unicode MS','Lucida Sans Unicode','Arial';color:#000000;display:inline-block;width:13px;margin-left:-13px">&#8226;</span><span class="f_NormalIndent">When the output approaches the platform limits a </span><span class="f_NormalIndent" style="font-weight: bold;">warning</span><span class="f_NormalIndent"> is displayed (in the shell for the offline MC and in the log for the online MC).</span></p><p class="p_Normal">&nbsp;</p>
<p class="p_Normal">A further safety layer is obtained imposing a <span style="font-style: italic; font-weight: bold;">maximum</span> <span style="font-style: italic; font-weight: bold;">value</span> for the limits as listed below</p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_XY_AA=0.3491</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_XY_AL=25</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_XY_JL=10000</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_XY_VA=2.3</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_YX_AA=0.349100</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_YX_AL=25</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_YX_JL=10000</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_YX_VA=2.26</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_ZA_AA=0.43</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_ZA_VA=2.87</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_ZV_AV=35</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.U_LIM_ZV_JV=10000</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.Y_LIM_XY_PA=0.2</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.Y_LIM_XY_PL=0.9</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.Y_LIM_XY_VL=1.5</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.Y_LIM_YX_PA=0.2</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.Y_LIM_YX_PL=0.85</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.Y_LIM_YX_VL=1.5</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.Y_LIM_ZA_PA=0.6</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.Y_LIM_ZV_PV=0.22</p>
<p class="p_Normal">VI_DriveSim.Inputs.Platform.Cueing.Y_LIM_ZV_VV=1.6</p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal"><span style="font-weight: bold;">DiM safety data (from Saginomiya DiM manual)</span></p>
<p class="p_Normal" style="text-align: center;"><img alt="drvsim_dim_safety_1" width="528" height="396" style="margin:0px auto 0px auto;width:528px;height:396px;border:none" src="drvsim_dim_safety_1.png"/></p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal" style="text-align: center;"><img alt="drvsim_dim_safety_2" width="528" height="396" style="margin:0px auto 0px auto;width:528px;height:396px;border:none" src="drvsim_dim_safety_2.png"/></p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal" style="text-align: center;"><img alt="drvsim_dim_safety_3" width="528" height="396" style="margin:0px auto 0px auto;width:528px;height:396px;border:none" src="drvsim_dim_safety_3.png"/></p>
<p class="p_Normal">&nbsp;</p>
<p class="p_Normal" style="text-align: center;"><img alt="drvsim_dim_safety_4" width="528" height="396" style="margin:0px auto 0px auto;width:528px;height:396px;border:none" src="drvsim_dim_safety_4.png"/></p>

<!--ZOOMSTOP-->
</div></div>
<script type="text/javascript"> 
<!-- 
var lastSlashPos = document.URL.lastIndexOf("/") >
document.URL.lastIndexOf("\\") ? document.URL.lastIndexOf("/") :
document.URL.lastIndexOf("\\");
if( document.URL.substring( lastSlashPos + 1, lastSlashPos + 4
).toLowerCase() != "~hh" )
{
    nsrInit();
}
--> 
</script> 
</body>
</html>
